package com.seminario.spring.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.seminario.spring.dao.caralibro.AmistadDAO;
import com.seminario.spring.dao.caralibro.MensajeDAO;
import com.seminario.spring.dao.caralibro.MuroDOA;
import com.seminario.spring.domain.Amistad;
import com.seminario.spring.domain.Mensaje;
import com.seminario.spring.domain.Muro;
import com.seminario.spring.domain.Perfil;

@Service
public class CaraLibroServiceImpl implements CaraLibroService {
	
	@Autowired
	private AmistadDAO amistadDAO;
	@Autowired
	private MuroDOA muroDOA;
	@Autowired
	private MensajeDAO mensajeDAO;
	
	@Override
	@Transactional(readOnly=false)
	public List<Perfil> getAmigos(Integer perfilId) {
		List<Amistad> amistades = amistadDAO.getAmistadPorPerfilId(perfilId);
		List<Perfil> perfiles = new ArrayList<Perfil>();
		for (Amistad amistad : amistades) {
			if(!amistad.getPerfil().getId().equals(perfilId)){
				perfiles.add(amistad.getPerfil());
			}else{
				perfiles.add(amistad.getPerfil1());
			}
		}
		
		
		return perfiles;
	}
	@Override
	@Transactional(readOnly=true)
	public Muro getMuro(Perfil perfil) {
		Muro muro = muroDOA.getMuro(perfil);
		return muro;
	}
	@Override
	@Transactional
	public Muro guardarMuro(Muro m) {
		return muroDOA.persist(m);
	}
	@Override
	public Muro getMuro(Integer muroId) {
		return muroDOA.findById(Muro.class ,muroId);
	}
	@Override
	public void guardarMensaje(Mensaje m) {
		mensajeDAO.merge(m);
		
	}

	
}
